/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managers;

import conexionBD.ConexionServidor;
import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

/**
 *
 * @author ruanda
 */
@ManagedBean
@SessionScoped
public class managerCrearMatrizRecorridos implements Serializable {

    private String fechaSalida;
    private String tecnicos;
    private String destinos;
    private String mision;
    private String motorista;
    private String horasalida;
    private String horaregreso;
    private Integer codigo;

    FacesContext context;

    public managerCrearMatrizRecorridos() {
    }

    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public String getDestinos() {
        return destinos;
    }

    public void setDestinos(String destinos) {
        this.destinos = destinos;
    }

    public String getFechaSalida() {
        return fechaSalida;
    }

    public void setFechaSalida(String fechaSalida) {
        this.fechaSalida = fechaSalida;
    }

    public String getHoraregreso() {
        return horaregreso;
    }

    public void setHoraregreso(String horaregreso) {
        this.horaregreso = horaregreso;
    }

    public String getHorasalida() {
        return horasalida;
    }

    public void setHorasalida(String horasalida) {
        this.horasalida = horasalida;
    }

    public String getMision() {
        return mision;
    }

    public void setMision(String mision) {
        this.mision = mision;
    }

    public String getMotorista() {
        return motorista;
    }

    public void setMotorista(String motorista) {
        this.motorista = motorista;
    }

    public String getTecnicos() {
        return tecnicos;
    }

    public void setTecnicos(String tecnicos) {
        this.tecnicos = tecnicos;
    }

    public void guardarDatos() {
//        String destino = null;
        ConexionServidor myConexion = new ConexionServidor();
        try {
            Connection con = myConexion.getConnection();
            //Sentencia sql que hace el llamado a el procedimiento
            String sql = "{call matrizrecorrido(?,?,?,?,?,?,?)}";
            CallableStatement cs = con.prepareCall(sql);
            //Setting los parametros a ser captorados or el proceso almacenado
            cs.setString(1, fechaSalida);
            cs.setString(2, destinos);
            cs.setString(3, tecnicos);
            cs.setString(4, mision);
            cs.setString(5, motorista);
            cs.setString(6, horasalida);
            cs.setString(7, horaregreso);
            //ejecucion del proceso almacenado
            cs.execute();
            //Mensaje de actualizacion exitosa
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "INSERCI&Oacute;N", "La informacion fue ingresada con exito"));
            limpiar();
            //cierre de CallableStatement y Connection
            cs.close();
            con.close();

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public Result getListaMatrizRecorrido() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection conn = miConexion.getConnection();
        try {
            PreparedStatement ps = conn.prepareStatement("select * from bitacora_visita");
            ResultSet rs = ps.executeQuery();
            return ResultSupport.toResult(rs);
        } finally {
            conn.close();
        }
    }

     public void removerMatriz() throws Exception {
        ConexionServidor miConexion = new ConexionServidor();
        Connection con = miConexion.getConnection();
        try{
            PreparedStatement ps = con.prepareStatement("DELETE FROM bitacora_visita WHERE idbitacoravisita = ? ");
            ps.setInt(1, codigo);
            ps.execute();
            context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "ELIMINACI&Oacute;N", "La información fue eliminada con éxito"));
            codigo=null;
        } finally {
            con.close();
        }
    }

    public void limpiar() {
        fechaSalida = null;
        tecnicos = null;
        destinos = null;
        mision = null;
        motorista = null;
        horasalida = null;
        horaregreso = null;
    }
}
